Skip to content

TASK-209191 block global trace while inheriting thread data#12

Open
balupillai wants to merge 2 commits intomainfrom
TASK-209191
Open

TASK-209191 block global trace while inheriting thread data#12
balupillai wants to merge 2 commits intomainfrom
TASK-209191

Conversation

@balupillai
Copy link
Contributor

@balupillai balupillai commented Mar 4, 2026

Note

Medium Risk
Touches GC/thread synchronization by adding collector blocking around luaC_inherit_thread, which could introduce or resolve subtle deadlock/timing issues in a highly concurrent, correctness-critical path.

Overview
Prevents global tracing/collector activity from interleaving with thread reclamation by blocking the collector during luaC_inherit_thread while it steals objects, updates ownership, and removes the reclaimed heap from all_heaps.

This adds per-thread state retrieval and a block_collector/unblock_collector bracket around the critical section to reduce lock contention/races between global trace and thread inheritance.

Written by Cursor Bugbot for commit b88bfd0. This will update automatically on new commits. Configure here.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to prevent the global tracing GC from running while a thread’s heap/object data is being inherited into another thread, by adding an explicit collector barrier around the inheritance operation.

Changes:

  • Add per-OS-thread state lookup in luaC_inherit_thread.
  • Block the collector before inheriting a thread’s heap contents and unblock afterward.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants